using System;
using System.Collections.Generic;
using CreditoAutorizado.Dados.Enumeradores;

namespace CreditoAutorizado.Dados.Entidades
{
    public class Debito
    {
        private int _debitoId;
        private string _descricao;
        private Usuario _usuario;
        private DateTime _dataEmissao;
        private DateTime _dataPrevistaPagamento;
        private DateTime _dataPagamento;
        private TipoStatus _status;
        private IList<Comentario> _listaComentarios;   
        private decimal _valor;
        private Cliente _cliente;
        private string _descricaoPagamento;
        private bool _quitado;

        public Debito()
        {
            _listaComentarios = new List<Comentario>();
        }

        public virtual int DebitoId
        {
            get { return _debitoId; }
            set { _debitoId = value; }
        }

        public virtual string Descricao
        {
            get { return _descricao; }
            set { _descricao = value; }
        }

        public virtual Usuario Usuario
        {
            get { return _usuario; }
            set { _usuario = value; }
        }

        public virtual DateTime DataEmissao
        {
            get { return _dataEmissao; }
            set { _dataEmissao = value; }
        }

        public virtual DateTime DataPagamento
        {
            get { return _dataPagamento; }
            set { _dataPagamento = value; }
        }

        public virtual TipoStatus Status
        {
            get { return _status; }
            set { _status = value; }
        }

        public virtual IList<Comentario> ListaComentarios
        {
            get { return _listaComentarios; }
            set { _listaComentarios = value; }
        }

        public virtual decimal Valor
        {
            get { return _valor; }
            set { _valor = value; }
        }

        public virtual Cliente Cliente
        {
            get { return _cliente; }
            set { _cliente = value; }
        }

        public virtual string DescricaoPagamento
        {
            get { return _descricaoPagamento; }
            set { _descricaoPagamento = value; }
        }

        public virtual DateTime DataPrevistaPagamento
        {
            get { return _dataPrevistaPagamento; }
            set { _dataPrevistaPagamento = value; }
        }

        public virtual bool Quitado
        {
            get { return _quitado; }
            set { _quitado = value; }
        }

        public virtual void AddNovoComentario(Comentario comentario)
        {
            _listaComentarios.Add(comentario);
        }
    }
}